Termination in impure functional languages
نویسنده
چکیده
In this paper, an impure language is one that combines functional and imperative constructs. The language may be sequential or concurrent. We present a method for ensuring termination of impure languages that makes it possible to combine term rewriting measure-based techniques with traditional approaches for termination in functional languages such as logical relations. The method can be made parametric on the termination technique employed on the functional parts. As a test for robustness, we consider both a concurrent language (the π-calculus), and a sequential one (a λ-calculus with references).
منابع مشابه
Termination in Impure Concurrent Languages
An impure language is one that combines functional and imperative constructs. We propose a method for ensuring termination of impure concurrent languages that makes it possible to combine term rewriting measure-based techniques with traditional approaches for termination in functional languages such as logical relations. The method can be made parametric on the termination technique employed on...
متن کاملتوسعه روش SL با ترتیب KBO برای اثبات خودکار پایانپذیری سیستم بازنویسی ترم - مقاله برگزیده هفدهمین کنفرانس ملی انجمن کامپیوتر ایران
The term rewriting systems (TRSs) is an abstract model of functional languages. The termination proving of TRSs is necessary for confirming accuracy of functional languages. The semantic labeling (SL) is a complete method for proving termination. The semantic part of SL is given by a quasi-model of the rewrite rules. The most power of SL is related to infinite models that is difficult f...
متن کاملBreaking the Complexity Barrier of Pure Functional Programs with Impure Data Structures
Pure functional programming language offer many advantages over impure languages. Unfortunately, the absence of destructive update, imposes a complexity barrier. In imperative languages, there are algorithms and data structures with better complexity. We present our project for combining existing program transformation techniques to transform inefficient pure data structures into impure ones wi...
متن کاملRuntime system level fault tolerance for a distributed functional language
Distributed Fault Tolerance entails detecting errors, confining the damage caused, recovery from the errors, and providing continued service on a network of co-operating machines. Functional languages potentially offer benefits for distributed fault tolerance: many computations are pure, and hence have no side-effects to be reversed during error recovery. Moreover functional languages have a hi...
متن کاملCurry: A Truly Functional Logic Language
Functional and logic programming are the most important declarative programming paradigms, and interest in combining them has grown over the last decade. However, integrated functional logic languages are currently not widely used. This is due to the fact that the operational principles are not well understood and many diierent evaluation strategies have been proposed which resulted in many dii...
متن کامل